SignalR ব্যবহার করে রিয়েল-টাইম ডেটা আপডেট

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) SignalR এবং রিয়েল-টাইম অ্যাপ্লিকেশন |
189
189

SignalR হল একটি ASP.NET Core লাইব্রেরি যা ওয়েব অ্যাপ্লিকেশনের জন্য রিয়েল-টাইম কমিউনিকেশন সক্ষম করে। এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে দুই-দিক নির্দেশিত যোগাযোগ (bidirectional communication) প্রতিষ্ঠা করতে সাহায্য করে। SignalR এর মাধ্যমে আপনি ওয়েব পৃষ্ঠায় রিয়েল-টাইম ডেটা আপডেট করতে পারেন, যেমন চ্যাট অ্যাপ্লিকেশন, লাইভ নোটিফিকেশন, ড্যাশবোর্ড, ইত্যাদি।

SignalR ব্যবহার করে রিয়েল-টাইম ডেটা আপডেট করার জন্য আপনাকে কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হবে।


SignalR ইনস্টলেশন এবং কনফিগারেশন

ASP.NET Core এ SignalR ব্যবহার করতে প্রথমে কিছু প্যাকেজ ইনস্টল করতে হবে।

SignalR NuGet প্যাকেজ ইনস্টল করা

SignalR ব্যবহার শুরু করার জন্য প্রথমে আপনার প্রজেক্টে SignalR প্যাকেজ ইনস্টল করুন। এটি করতে, NuGet প্যাকেজ ম্যানেজার বা .NET CLI ব্যবহার করতে পারেন।

  • NuGet Package Manager:
    • Microsoft.AspNetCore.SignalR
  • .NET CLI:

    dotnet add package Microsoft.AspNetCore.SignalR
    

SignalR হাব (Hub) তৈরি করা

SignalR এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ সম্পন্ন হয় Hub এর মাধ্যমে। হাব হল এমন একটি ক্লাস যা সিগন্যাল সিস্টেমের কেন্দ্রীয় পয়েন্ট হিসেবে কাজ করে। সার্ভার ক্লায়েন্টকে ইভেন্ট বা ডেটা পাঠাতে এবং ক্লায়েন্ট সার্ভারের কাছে ডেটা পাঠাতে হাব ব্যবহার করে।

Hub তৈরি করা

প্রথমে একটি SignalR Hub ক্লাস তৈরি করুন:

using Microsoft.AspNetCore.SignalR;

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

এখানে SendMessage মেথডটি ক্লায়েন্ট থেকে মেসেজ গ্রহণ করে এবং তা সকল ক্লায়েন্টকে প্রেরণ করে ReceiveMessage মেথডের মাধ্যমে।


SignalR হাব কনফিগারেশন

SignalR হাব সার্ভারে কনফিগার করতে হবে। এর জন্য Startup.cs বা Program.cs ফাইলে নিম্নলিখিত কোড যুক্ত করুন।

Startup.cs কনফিগারেশন

public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapHub<ChatHub>("/chathub");
    });
}

এখানে MapHub<ChatHub>("/chathub") সিগন্যাল হাবকে একটি URL এ ম্যাপ করে, যার মাধ্যমে ক্লায়েন্টরা chathub এ কানেক্ট করতে পারে।


ক্লায়েন্ট সাইডে SignalR ইন্টিগ্রেশন

SignalR হাব সার্ভারে কনফিগার করার পর, এখন ক্লায়েন্ট সাইডে JavaScript দিয়ে SignalR ব্যবহার করা যাবে।

SignalR JavaScript লাইব্রেরি যুক্ত করা

প্রথমে SignalR JavaScript লাইব্রেরি যুক্ত করতে হবে। এটি CDN অথবা NuGet প্যাকেজের মাধ্যমে করা যেতে পারে।

<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@5.0.13/dist/browser/signalr.min.js"></script>

SignalR হাবের সাথে কানেক্ট করা

ক্লায়েন্ট সাইডে SignalR হাবের সাথে কানেক্ট করতে নিম্নলিখিত কোড ব্যবহার করুন:

const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chathub")
    .build();

connection.on("ReceiveMessage", function(user, message) {
    const msg = user + ": " + message;
    document.getElementById("messagesList").innerHTML += "<li>" + msg + "</li>";
});

connection.start().catch(function(err) {
    return console.error(err.toString());
});

এখানে ReceiveMessage ইভেন্টটি সার্ভার থেকে প্রাপ্ত মেসেজগুলোকে ক্লায়েন্টে রেন্ডার করছে। SignalR হাবের সাথে কানেক্ট করার জন্য start() মেথড ব্যবহার করা হয়েছে।

মেসেজ পাঠানো

ক্লায়েন্ট থেকে সার্ভারে মেসেজ পাঠানোর জন্য, হাবের SendMessage মেথডটি কল করতে হবে:

document.getElementById("sendButton").addEventListener("click", function(event) {
    const user = document.getElementById("userInput").value;
    const message = document.getElementById("messageInput").value;
    connection.invoke("SendMessage", user, message).catch(function(err) {
        return console.error(err.toString());
    });
    event.preventDefault();
});

এখানে SendMessage মেথডের মাধ্যমে ব্যবহারকারীর নাম এবং মেসেজ পাঠানো হচ্ছে।


SignalR এবং রিয়েল-টাইম ডেটা আপডেট

SignalR ব্যবহার করে রিয়েল-টাইম ডেটা আপডেট করার সুবিধা হল যে এটি ব্রাউজার রিফ্রেশ না করেই ডেটা লাইভ আপডেট করতে সক্ষম। উদাহরণস্বরূপ:

  • চ্যাট অ্যাপ্লিকেশন: ব্যবহারকারীরা একে অপরের সঙ্গে রিয়েল-টাইমে মেসেজ শেয়ার করতে পারে।
  • লাইভ ড্যাশবোর্ড: ডেটা আপডেটের সঙ্গে সঙ্গে ড্যাশবোর্ডের গ্রাফ বা চার্ট আপডেট হবে।
  • নোটিফিকেশন সিস্টেম: ব্যবহারকারীদের রিয়েল-টাইম নোটিফিকেশন পাঠানো।

SignalR এর মাধ্যমে আপনি এই ধরনের লাইভ, রিয়েল-টাইম ইন্টারঅ্যাকশন সহজে তৈরি করতে পারেন।


সারাংশ

ASP.NET Core SignalR একটি শক্তিশালী টুল যা রিয়েল-টাইম ওয়েব অ্যাপ্লিকেশন তৈরিতে সহায়তা করে। এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে দ্রুত এবং কার্যকরী ডেটা প্রেরণ সক্ষম করে। SignalR ব্যবহার করে আপনি চ্যাট, লাইভ আপডেট, নোটিফিকেশন, ড্যাশবোর্ড ইত্যাদি তৈরি করতে পারেন। SignalR হাব এবং JavaScript ক্লায়েন্ট সাইড ইন্টিগ্রেশন ব্যবহার করে সিস্টেমটি সহজেই তৈরি করা যায়।

common.content_added_by

common.read_more

টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion